/**
 * 
 */
package co.edu.uniandes.ecos.itera.tsp.interfaz;

import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JLabel;
import javax.swing.JPanel;

import co.edu.uniandes.ecos.itera.tsp.anotaciones.Avance;
import co.edu.uniandes.ecos.itera.tsp.anotaciones.Avances;
import co.edu.uniandes.ecos.itera.tsp.anotaciones.Interrupciones;
import co.edu.uniandes.ecos.itera.tsp.anotaciones.LogInt;
import co.edu.uniandes.ecos.itera.tsp.anotaciones.LogT;
import co.edu.uniandes.ecos.itera.tsp.anotaciones.Tiempos;
import co.edu.uniandes.ecos.itera.tsp.mundo.Ciclo;
import co.edu.uniandes.ecos.itera.tsp.mundo.DelegadoNegocio;
import co.edu.uniandes.ecos.itera.tsp.mundo.EntidadReporteProducto;
import co.edu.uniandes.ecos.itera.tsp.mundo.Proyecto;

/**
 * @author Andres
 *
 */
@Avances({
	@Avance(taskId=125,termino='S'),
	@Avance(taskId=131,termino='N')
})
@Tiempos( { 
	@LogT(date = "2011-03-26",	 min = 35, taskId = 125),
	@LogT(date = "2011-03-27", min = 160, taskId = 131),//06:23 AM
	@LogT(date = "2011-03-28", min = 90, taskId = 131),//06:31 PM
	@LogT(date = "2011-03-28", min = 47, taskId = 141)//09:00 PM
})
@Interrupciones({
	@LogInt(date="2011-03-26",min=30,intId=1,taskId=131)
})
public class ReporteProducto extends JPanel implements ActionListener{
	
	public EntidadReporteProducto entidadReporteProducto;
	public MenuPrincipal principal;
	public Ciclo ciclo;
	public Proyecto proyecto;
	public DelegadoNegocio delegadoNegocio;
	
	public JLabel cicloReporteTitulo;
	public JLabel totalLOCsRealesTitulo;
	public JLabel totalLOCsPlaneadosTitulo;
	public JLabel efectividadLOCsTitulo;
	public JLabel totalTiempoRealTitulo;
	public JLabel totalTiempoPlaneadoTitulo;
	public JLabel efectividadTiemposTitulo;
	public JLabel productividadTitulo;
	
	public JLabel cicloReporte;
	public JLabel totalLOCsReales;
	public JLabel totalLOCsPlaneados;
	public JLabel efectividadLOCs;
	public JLabel totalTiempoReal;
	public JLabel totalTiempoPlaneado;
	public JLabel efectividadTiempos;
	public JLabel productividad;
	
	public JLabel tituloVentana;
	public JLabel nombreVentana;
	
	public JLabel tituloGrupo;
	public JLabel nombreGrupo;
	
	public JPanel cabecera;
	public JPanel contenedor;
		
	/**
	 * @param delegadoNegocio
	 * @param principal
	 * @param ciclo
	 */
	public ReporteProducto(DelegadoNegocio mundo,
			MenuPrincipal principal, Ciclo ciclo) {
		super();
		this.delegadoNegocio = mundo;
		this.principal = principal;
		this.ciclo = ciclo;
		entidadReporteProducto = delegadoNegocio.generarReporteProducto(ciclo);
		this.pintarse(entidadReporteProducto);
	}
	
	public ReporteProducto(DelegadoNegocio mundo,
			MenuPrincipal principal, Proyecto proyectoI) {
		super();
		this.delegadoNegocio = mundo;
		this.principal = principal;
		this.proyecto = proyectoI;
		entidadReporteProducto = delegadoNegocio.generarReporteProducto(proyectoI);
		this.pintarse(entidadReporteProducto);
	}
	
	public void pintarse(EntidadReporteProducto entidadReporteProductoI){
		
		setLayout(new GridLayout(4, 2));
		setPreferredSize(new Dimension(400, 200));
		
		cabecera = new JPanel();
		cabecera.setLayout(new GridLayout(2,5));
		
		tituloVentana = new JLabel("Reporte: ");
		cabecera.add(tituloVentana);
		nombreVentana = new JLabel("Producto");
		cabecera.add(nombreVentana);
		tituloGrupo= new JLabel("Grupo: ");
		cabecera.add(tituloGrupo);
		nombreVentana = new JLabel("iTera");
		cabecera.add(nombreVentana);
			
		contenedor = new JPanel();
		contenedor.setLayout(new GridLayout(10,1));
		
		cicloReporteTitulo = new JLabel("Titulo del Ciclo");
		if(entidadReporteProductoI.getCicloReporte() == null){
			cicloReporte = new JLabel("Todos");
		}else{
			cicloReporte = new JLabel(entidadReporteProductoI.getCicloReporte().getNumeroCiclo()+"");
		}		
		contenedor.add(cicloReporteTitulo);
		contenedor.add(cicloReporte);
		
		totalLOCsRealesTitulo = new JLabel("Total LOCs Reales");
		totalLOCsReales = new JLabel(entidadReporteProductoI.getTotalLOCsReales()+"");
		contenedor.add(totalLOCsRealesTitulo);
		contenedor.add(totalLOCsReales);
		
		totalLOCsPlaneadosTitulo = new JLabel("Total LOCS Planeados");
		totalLOCsPlaneados = new JLabel(entidadReporteProductoI.getTotalLOCsPlaneados()+"");
		contenedor.add(totalLOCsPlaneadosTitulo);
		contenedor.add(totalLOCsPlaneados);
		
		efectividadLOCsTitulo = new JLabel("Efectividad en LOCs");
		efectividadLOCs = new JLabel(entidadReporteProductoI.getEfectividadLOCs()+"");
		contenedor.add(efectividadLOCsTitulo);
		contenedor.add(efectividadLOCs);
		
		totalTiempoRealTitulo = new JLabel("Total Tiempo Real");
		totalTiempoReal = new JLabel(entidadReporteProductoI.getTotalTiempoReal()+"");
		contenedor.add(totalTiempoRealTitulo);
		contenedor.add(totalTiempoReal);
		
		totalTiempoPlaneadoTitulo = new JLabel("Total Tempo Planeado");
		totalTiempoPlaneado = new JLabel(entidadReporteProductoI.getTotalTiempoPlaneado()+"");
		contenedor.add(totalTiempoPlaneadoTitulo);
		contenedor.add(totalTiempoPlaneado);
		
		efectividadTiemposTitulo = new JLabel("Efectividad en Tiempo");
		efectividadTiempos = new JLabel(entidadReporteProductoI.getEfectividadTiempos()+"");
		contenedor.add(efectividadTiemposTitulo);
		contenedor.add(efectividadTiempos);
		
		productividadTitulo = new JLabel("Productividad");
		productividad = new JLabel(entidadReporteProductoI.getProductividad()+"");		
		contenedor.add(productividadTitulo);
		contenedor.add(productividad);
		
		add(cabecera);
		add(contenedor);
	}
	
	public void cargarDatos(){
		
	}







	@Override
	public void actionPerformed(ActionEvent arg0) {
		// TODO Auto-generated method stub
		
	}

}
